package com.jerry.ReadWriteLock;

public interface ReadWriteLock {

    public ReadLock getReadLock();

    public WriteLock getWriteLock();

    public int getReadingReader();

    public int getWritingWriter();

    public int getWaitingWriter();

    public Object getMutex();

    public void increaseReadingReader() ;

    public void increaseWaitingWriter() ;

    public void increaseWritingWriter() ;

    public void decreaseWaitingWriter() ;

    public void decreaseWritingWriter() ;

    public void decreaseReadingReader() ;

    public Boolean getPreferWrite();

    public void changePrefer(Boolean ifWritePrefer);

}
